/**
 * User业务逻辑
 * @author LiQiang
 * @date 2014-08-07
 */
package com.mybatis.exercise.service;

import java.util.List;
import java.util.Map;

import com.mybatis.exercise.model.pojo.User;
import com.mybatis.exercise.model.vo.UserVo;

public interface UserService {
	/**
	 * 删除用户
	 * @param userId 用户编号
	 * @return 删除成功返回true，否则返回false
	 */
	boolean deleteUser(Integer userId);

	/**
	 * 添加用户
	 * @param user 用户对象
	 * @return 返回自动增量id对象
	 */
	Object insertUser(User user);
	
	/**
	 * 更新用户
	 * @param user 用户对象
	 * @return 布尔值 成功为true，失败为false
	 */
	boolean updateUser(User user);

	/**
	 * 根据用户电子邮件查找用户
	 * @param userId 用户编号
	 * @return 如果找到返回该用户，否则返回空 null
	 */
    UserVo selectUserByUserId(Integer userId);

    /**
     * 查询所有用户信息
     * @return 返回所有用户信息
     */
    List<UserVo> selectUsers();
    
    /**
     * 根据用户电子邮件和用户密码查找用户
     * @param userEmail 电子邮件
     * @param userPassword 用户密码
     * @return 如果找到返回该用户，否则返回空 null
     */
    UserVo selectUserByEmailAndPwd(String userEmail,String userPassword);
    
    /**
     * 根据多个条件查询用户
     * @param conditions 多个条件 Map对象
     * @return 返回匹配的用户信息
     */
    List<UserVo> selectUsersByCondition(Map<String, Object> conditions);
    
}
